<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 transitional//EN">
<html>
<head>
<title>Data Group Element (Eclipse BIRT ROM Documentation)</title>
<link rel="stylesheet" href="../style/style.css" type="text/css"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p class="title">Eclipse BIRT Report Object Model (ROM)</p>
<p class="subtitle">DataGroup Element</p>
<h1>Element Overview</h1>
<div class="section-text">
Represents the behavior common data properties for groups.</div>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Display Name:</td>
<td>Data Group</td></tr>
<tr><td>Since:</td>
<td>2.2</td></tr>
<tr><td>XML Element:</td>
<td><code>data-group</code></td></tr>
<tr><td>Extends:</td>
<td>None</td></tr>
<tr><td>Extendable:</td>
<td>No</td></tr>
<tr><td>Abstract:</td>
<td>No</td></tr>
<tr><td>Name Space:</td>
<td>None</td></tr>
<tr><td>Name Requirement:</td>
<td>Not Supported</td></tr>
<tr><td>Allows User Properties:</td>
<td>No</td></tr>
<tr><td>Has Style:</td>
<td>No</td></tr>
</table>

<h3>Property Summary</h3>

<dl class="section-text">
<dt><a href="#Property-filter">filter</a></dt>
<dd>A filter to apply to the each group as a whole.</dd>
<dt><a href="#Property-groupName">groupName</a></dt>
<dd>Optional name of the group.</dd>
<dt><a href="#Property-interval">interval</a></dt>
<dd>When creating intervals, this property allows grouping on a
range of contiguous values.</dd>
<dt><a href="#Property-intervalBase">intervalBase</a></dt>
<dd>In conjunction with Interval and IntervalRange, determines how
data is divided into groups.</dd>
<dt><a href="#Property-intervalRange">intervalRange</a></dt>
<dd>Number of contiguous groups to merge to create a single group.</dd>
<dt><a href="#Property-keyExpr">keyExpr</a></dt>
<dd>The expression for the group key.</dd>
<dt><a href="#Property-sort">sort</a></dt>
<dd>Custom sort criteria to apply to the groups as a whole.</dd>
<dt><a href="#Property-sortDirection">sortDirection</a></dt>
<dd>The sort direction for the groups at this level.</dd>
<dt><a href="#Property-sortType">sortType</a></dt>
<dd>Sort type property</dd>
</dl>

<h3>Description</h3>

<div class="section-text">
<p>An element can be divided into a number of
groups.&nbsp;Groups often have subtotals. For example, a sales
report may show totals per sales rep and region.</p>

<p>A data group is defined by a <i>group key.</i>
The key is a column from the query. If the group key is a time field
then user often want to group on an <i>interval</i> such
as month or quarter.</p></div>
<h1>Property Detail</h1>

<h2><a name="Property-filter">filter Property</a></h2>

<p class="section-text">A filter to apply to the each group as a whole.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td>List of <a href="../structs/FilterCondition.html">FilterCondition</a> Structures</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Filter</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Hidden</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>A filter to apply to the each group as a whole. The filter
conditions should apply to values that are constant for each group.
This means that the filter expressions should be <i>functionally
dependent &nbsp;</i>on the group key, or should be defined on
aggregates computed over the group. For example, display only customers
with non-zero sales totals, or display only the top 10 customers as
determined by sales.</p></div>

<hr>
<h2><a name="Property-groupName">groupName Property</a></h2>

<p class="section-text">Optional name of the group.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#string">string</a></td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Name</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>Optional name of the group. The group name must be unique
within the list or table. The name is used to identify the group in
aggregates as explained in the scripting specification.</p></div>

<hr>
<h2><a name="Property-interval">interval Property</a></h2>

<p class="section-text">When creating intervals, this property allows grouping on a
range of contiguous values.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#choice">choice</a> (interval)</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Interval</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>none</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Interval</td></tr>
</table>

<h3>Choices</h3>

<table class="section-table">
<thead><tr><td>Name</td><td>Display Name</td>
<td>Value</td><td>Description</td></tr></thead>
<tbody>
<tr><td>none</td>
<td>No Interval</td>
<td>none</td>
<td>Group on individual values.</td></tr>
<tr><td>prefix</td>
<td>Prefix</td>
<td>prefix</td>
<td>Group on a string prefix</td></tr>
<tr><td>year</td>
<td>Year</td>
<td>year</td>
<td>Group on a range of years.</td></tr>
<tr><td>quarter</td>
<td>Quarter</td>
<td>quarter</td>
<td>Group on a range of quarters.</td></tr>
<tr><td>month</td>
<td>Month</td>
<td>month</td>
<td>Group on a range of months.</td></tr>
<tr><td>week</td>
<td>Week</td>
<td>week</td>
<td>Group on a range of weeks.</td></tr>
<tr><td>day</td>
<td>Day</td>
<td>day</td>
<td>Group on a range of days.</td></tr>
<tr><td>hour</td>
<td>Hour</td>
<td>hour</td>
<td>Group on a range of hours.</td></tr>
<tr><td>minute</td>
<td>Minute</td>
<td>minute</td>
<td>Group on a range of minutes.</td></tr>
<tr><td>second</td>
<td>Second</td>
<td>second</td>
<td>Group on a range of seconds.</td></tr>
<tr><td>interval</td>
<td>Interval</td>
<td>interval</td>
<td>Group on a numeric interval.</td></tr>
</tbody></table><br>
<h3>Description</h3>

<div class="section-text">
<p>This property allows the group to include a range of
contiguous values. For example, a monthly sales report may want to
summarize a list of individual transactions, each of which has a
transaction date. Using the Month interval, BIRT will cause a break to
occur each time the transaction dates move into a different calendar
month.</p>

<p>Use this property with the <code>
intervalRange</code> property to select a set of contiguous
values. For example, a bi-monthly report would use the Month <code>interval</code>
with an <code>intervalRange</code> of 2.</p></div>
<h3>See Also</h3>

<div class="section-text">
<p><code>intervalRange</code> Property</p></div>

<hr>
<h2><a name="Property-intervalBase">intervalBase Property</a></h2>

<p class="section-text">In conjunction with Interval and IntervalRange, determines how
data is divided into groups.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#string">string</a></td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Interval base</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Interval</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>In conjunction with Interval and IntervalRange, determines how
data is divided into groups.</p></div>

<hr>
<h2><a name="Property-intervalRange">intervalRange Property</a></h2>

<p class="section-text">Number of contiguous groups to merge to create a single group.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#float">float</a></td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Interval range</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Interval</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>When creating intervals, this attribute allows grouping on a
range of contiguous values. For example, to show data over the span of
three hours, set the grouping interval to hours and the range to 3. The
user enters the interval range here.</p>

<p>The following shows the meaning of the range for each interval
type.</p>

<table class="section-table">

  <thead> <tr>

    <td> Interval</td>

    <td> Meaning of Range</td>

  </tr>

  </thead> <tbody>

    <tr>

      <td> None</td>

      <td> &nbsp;Ignored</td>

    </tr>

    <tr>

      <td> Prefix</td>

      <td> &nbsp;The number of characters in the prefix.</td>

    </tr>

    <tr>

      <td> Date/Time</td>

      <td> &nbsp;The number of the units.</td>

    </tr>

    <tr>

      <td> Interval</td>

      <td> &nbsp;The numeric interval</td>

    </tr>

  </tbody>
</table>

<p></p></div>
<h3>See Also</h3>

<div class="section-text">
<p><code>interval</code> Property</p></div>

<hr>
<h2><a name="Property-keyExpr">keyExpr Property</a></h2>

<p class="section-text">The expression for the group key.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#expression">expression</a></td></tr>
<tr><td>Context:</td>
<td></td></tr>
<tr><td>Expression Type:</td>
<td>any</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>Yes</td></tr>
<tr><td>Display Name:</td>
<td>Key expression</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>Yes</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>Gives the group key as an expression. The group key says when
to cause a group break listing. For example, if the group is by state,
then the group key might be "<code>row.state</code>". A
level break occurs each time the key changes. At each level break, the
current group is ended, and a new group started. The expression most
often is just a column, but can be a computed value.</p></div>
<h3>See Also</h3>

<div class="section-text">
<br></div>

<hr>
<h2><a name="Property-sort">sort Property</a></h2>

<p class="section-text">Custom sort criteria to apply to the groups as a whole.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td>List of <a href="../structs/SortKey.html">SortKey</a> Structures</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Sort</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>None</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Hidden</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Description</h3>

<div class="section-text">
<p>Custom sort criteria to apply to the groups as a whole. For
example, the report may group customers by customer ID, but sort the
customers by total sales or by customer name.</p></div>
<h3>See Also</h3>

<div class="section-text">
<p><code>sortDirection</code> property</p></div>

<hr>
<h2><a name="Property-sortDirection">sortDirection Property</a></h2>

<p class="section-text">The sort direction for the groups at this level.</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#choice">choice</a> (sortDirection)</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Sort direction</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>asc</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Choices</h3>

<table class="section-table">
<thead><tr><td>Name</td><td>Display Name</td>
<td>Value</td><td>Description</td></tr></thead>
<tbody>
<tr><td>asc</td>
<td>Ascending</td>
<td>asc</td>
<td>Sort values from lowest to highest.</td></tr>
<tr><td>desc</td>
<td>Descending</td>
<td>desc</td>
<td>Sort values from highest to lowest.</td></tr>
</tbody></table><br>
<h3>Description</h3>

<div class="section-text">
<p>The sort direction applies only if the List does not have a
custom sort defined using the <code>sort</code> property.
The default group sort key is the group key.</p></div>
<h3>See Also</h3>

<div class="section-text">
<p><code>sort</code> Property</p>

<br></div>

<hr>
<h2><a name="Property-sortType">sortType Property</a></h2>

<p class="section-text">Sort type property</p>
<h3>Details</h3>

<table class="detail-table">
<tr><td>Type:</td>
<td><a href="../types.html#choice">choice</a> (sortType)</td></tr>
<tr><td>Since:</td>
<td>2.3</td></tr>
<tr><td>Required:</td>
<td>No</td></tr>
<tr><td>Display Name:</td>
<td>Sort type</td></tr>
<tr><td>JavaScript Type:</td>
<td></td></tr>
<tr><td>Default Value:</td>
<td>none</td></tr>
<tr><td>Inherited:</td>
<td>Yes</td></tr>
<tr><td>Runtime Settable:</td>
<td>No</td></tr>
<tr><td>Property Sheet Visibility:</td>
<td>Visible</td></tr>
<tr><td>Property Sheet Group:</td>
<td>Top</td></tr>
</table>

<h3>Choices</h3>

<table class="section-table">
<thead><tr><td>Name</td><td>Display Name</td>
<td>Value</td><td>Description</td></tr></thead>
<tbody>
<tr><td>none</td>
<td>No Sort Type</td>
<td>none</td>
<td></td></tr>
<tr><td>sort-on-group-key</td>
<td>Sort on Group Key</td>
<td>sort-on-group-key</td>
<td></td></tr>
<tr><td>complex-sort</td>
<td>Complex Sort</td>
<td>complex-sort</td>
<td></td></tr>
</tbody></table><br>
<h3>Description</h3>

<div class="section-text">
<p>Sort type</p></div>
</body>
</html>
